package com.kawa.kemanage.mapper;

import com.kawa.kemanage.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface UserMapper {
    User findByUserName(@Param("userName") String userName);

    /**
     * 根据ID查询用户
     * @param id 用户ID
     * @return 用户信息
     */
    User findById(@Param("id") Integer id);

    /*查询用户列表*/
    List<User> queryUserList(@Param("excludeUserType") Integer excludeUserType, 
                           @Param("filterType") Integer filterType,
                           @Param("userName") String userName);

    /*增加用户*/
    int addUser(User user);

    /*删除用户*/
    Integer deleteUser(Integer id);

    /**
     * 修改用户
     * @param user
     * @return
     */
    int updateUser(User user);

    /**
     * 查询用户类型列表
     * @return 用户类型列表
     */
    List<Map<String, Object>> queryUserTypeList();


    //获取个人中心的数据(用户数据）
    User personalCenter(@Param("id") Integer id);


    /**
     * 修改个人信息
     * @param user
     * @return
     */
    int updateUserPerson(User user);


    /**
     * 修改密码
     * @return
     */
    int udatePassword(User user);

    /**
     * 修改手机号
     * @param user
     * @return
     */
    int udatePhone(User user);

    /**
     * 获取用户关注的人数据
     */
    List<User> getFollowees(@Param("follower_id") Integer follower_id);

    //粉丝数据
    List<User> getFollower(@Param("followee_id")Integer followee_id);

    //取消关注
    int delFollee(@Param("follow_id")Integer follow_id);

    //关注
    int addFollee( User user);

}
